Conversation
Co-authored-by: Takashi MIMA <tks.m1205@gmail.com>
…-backend into feat/delete-user
75e2269 to
0f31952
Compare
|
今気づいたんですが,ユーザーを削除する際にfirebaseからも削除する必要があると思います. |
|
そうだったのですが、面倒そうだったので目を背けていました。
この2つの中では、後者の方が良いと思っています。 前者は、DBの削除に失敗した場合やコネクションが失敗した場合にfirebaseから削除したデータを再登録する必要があります。それに対し、後者はfirebaseの処理に失敗したときにDBに張っておいたトランザクションをロールバックすれば良いので実装上もよさそうです。 どうでしょうか? |
|
後者がよいと思います. |
|
その方向で修正します。 |
|
infra層でfirebaseとuserの2つに跨っているため、contextにトランザクションを持たせることとします。 |
|
userRepoとauthRepoのDeleteをmockを用いてControllerでテストする場合、DoInTx()の内部で別のモックを呼ぶ必要がありテストが出来ていません。 |
|
transactionの設計自体は特に問題は無いと思いました! とかでいけませんか?(今手元にPCないので変なコード書いてるかもしれませんが、要はgomockのDoAndReturnを使えないかということです。) ControllerのテストではDoInTxは引数の関数をそのまま実行するモックにしたら良いのではないでしょうか! |
このPRの概要
DELETE /user/{userID}の実装追加
なぜこのPRが必要なのか
まだ実装されていなかったため
ref: #34